home *** CD-ROM | disk | FTP | other *** search
- /*********************************************************************
- * *
- * HAPPy assembler & interpriter common header *
- * *
- * Copyright (c) H.Asano 1992,1993 *
- * *
- *********************************************************************/
-
-
- #define Maxstore 10000 /* 記憶装置の大きさ(ワード数) */
- #define Maxint 2147483647L /* 最大整数値 */
- #define Largeint 32768L /* intより大きい数 */
-
- #define NilValue Maxstore + 1 /* ポインタのnilの値 */
-
- #define MaxIDlng 32 /* 名前の最大識別可能文字数 */
- #define MaxRFlen 32 /* 実ファイル名の最大長 */
- #define Maxfileno 8 /* 最大ファイル数(input,output以外)*/
-
- #define addset(Set,pos) ((Set) |= ( (long)1 << ((pos) & 0x1F) ))
- #define inset(Set,pos) (( ((long)(Set)) >> ((pos) & 0x1F) ) & 0x1)
-
- typedef long integer ; /* integer は long型とする */
- typedef enum bool {false , /* 偽 */
- true /* 真 */
- } boolean ; /* pascalのboolean型と同じ */
-
- typedef struct { /********* 命令格納域 型定義 */
- unsigned char cdop ; /* operation */
- char cdp ; /* p operand */
- short cdq ; /* q operand */
- } _code ;
-
- typedef union { /********* 記憶装置 型定義 */
- integer vi ; /* integer */
- float vr ; /* real */
- short vb ; /* boolean */
- long vs ; /* set (0..31) */
- short vc ; /* char */
- int va ; /* address */
- _code vo ; /* object code */
- } _store;
-
- typedef enum fmode {
- undefined , /* 不定 */
- inspection , /* 検査モード */
- generation /* 生成モード */
- } fmode ;
-
- typedef struct fileinfo { /* ファイル情報テーブル */
- char filename[MaxIDlng+1] ; /* 外部ファイル 論理ファイル名 */
- int fileadr ; /* P-code上の ファイル変数アドレス */
- int filesize ; /* バッファ変数の大きさ */
- char rfname[MaxRFlen+1] ; /* 実ファイル名 */
- _store *filebuf ; /* バッファ変数アドレス */
- boolean textfile ; /* テキストファイルの時 真 */
- boolean eolnflag ; /* テキストファイルのeolnの時 真 */
- boolean writelnflag; /* 最後が改行の時 真 */
- FILE *fp ; /* ファイルポインタ */
- fmode mode ; /* 生成モード / 検査モード / 不定 */
- } fileinfo ;
-
- EXTERN fileinfo fi[Maxfileno+2] ;